package com.yinhe.system.service.impl;

import java.util.List;

import com.yinhe.common.annotation.DataScope;
import com.yinhe.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yinhe.system.mapper.YhSealInfoMapper;
import com.yinhe.system.domain.YhSealInfo;
import com.yinhe.system.service.IYhSealInfoService;

/**
 * 印章基础信息Service业务层处理
 *
 * @author yinhe
 * @date 2022-07-13
 */
@Service
public class YhSealInfoServiceImpl implements IYhSealInfoService
{
    @Autowired
    private YhSealInfoMapper yhSealInfoMapper;

    /**
     * 查询印章基础信息
     *
     * @param id 印章基础信息主键
     * @return 印章基础信息
     */
    @Override
    public YhSealInfo selectYhSealInfoById(Long id)
    {
        return yhSealInfoMapper.selectYhSealInfoById(id);
    }
    @Override
    public YhSealInfo selectYhSealInfoSealNumber(String sealNumber)
    {
        return yhSealInfoMapper.selectYhSealInfoSealNumber(sealNumber);
    }
    /**
     * 查询印章基础信息列表
     *
     * @param yhSealInfo 印章基础信息
     * @return 印章基础信息
     */
    @Override
    @DataScope(deptAlias = "yh_seal_info", userAlias = "yh_seal_info")
    public List<YhSealInfo> selectYhSealInfoList(YhSealInfo yhSealInfo)
    {
        return yhSealInfoMapper.selectYhSealInfoList(yhSealInfo);
    }

    /**
     * 新增印章基础信息
     *
     * @param yhSealInfo 印章基础信息
     * @return 结果
     */
    @Override
    public int insertYhSealInfo(YhSealInfo yhSealInfo)
    {
        yhSealInfo.setCreateTime(DateUtils.getNowDate());
        return yhSealInfoMapper.insertYhSealInfo(yhSealInfo);
    }

    /**
     * 修改印章基础信息
     *
     * @param yhSealInfo 印章基础信息
     * @return 结果
     */
    @Override
    public int updateYhSealInfo(YhSealInfo yhSealInfo)
    {
        yhSealInfo.setUpdateTime(DateUtils.getNowDate());
        return yhSealInfoMapper.updateYhSealInfo(yhSealInfo);
    }

    /**
     * 批量删除印章基础信息
     *
     * @param ids 需要删除的印章基础信息主键
     * @return 结果
     */
    @Override
    public int deleteYhSealInfoByIds(Long[] ids)
    {
        return yhSealInfoMapper.deleteYhSealInfoByIds(ids);
    }

    /**
     * 删除印章基础信息信息
     *
     * @param id 印章基础信息主键
     * @return 结果
     */
    @Override
    public int deleteYhSealInfoById(Long id)
    {
        return yhSealInfoMapper.deleteYhSealInfoById(id);
    }
    /**
     * 导入印章基础信息
     *
     * @param
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param
     * @return 结果
     */
    @Override
    public String importSealinfo(List<YhSealInfo> yhSealInfoList, Boolean isUpdateSupport)
    {
        int successNum = 0;
        StringBuilder successMsg = new StringBuilder();
        StringBuilder failureMsg = new StringBuilder();
        for (YhSealInfo sealInfo : yhSealInfoList) {
            this.insertYhSealInfo(sealInfo);
            successNum++;
            successMsg.append("<br/>" + successNum  + " 导入成功");
            successMsg.insert(0, "恭喜您，数据已全部导入成功！共 " + successNum + " 条，数据如下：");
        }
        return successMsg.toString();
    }
}
